/**
 * Canvas 渲染器类型定义
 */

export interface CanvasConfig {
  // 尺寸配置
  headerHeight: number // 表头高度
  departmentColumnWidth: number // 部门列宽度（类似甘特图床型列）
  employeeColumnWidth: number // 员工列宽度
  cellWidth: number // 单元格宽度
  cellHeight: number // 单元格高度

  // 颜色配置
  backgroundColor: string
  gridColor: string
  headerBackgroundColor: string
  employeeBackgroundColor: string
  textColor: string
  shiftColors: {
    morning: string
    afternoon: string
    night: string
    custom: string
  }

  // 字体配置
  fontSize: number
  fontFamily: string

  // 滚动配置
  scrollbarSize: number
  scrollbarColor: string
  scrollbarHoverColor: string
}

export interface ViewPort {
  scrollX: number // 水平滚动位置
  scrollY: number // 垂直滚动位置
  visibleStartRow: number // 可见起始行
  visibleEndRow: number // 可见结束行
  visibleStartCol: number // 可见起始列
  visibleEndCol: number // 可见结束列
}

export interface CellPosition {
  row: number
  col: number
  x: number
  y: number
}

export interface ScrollbarState {
  horizontal: {
    visible: boolean
    x: number
    y: number
    width: number
    height: number
    thumbX: number
    thumbWidth: number
    isDragging: boolean
  }
  vertical: {
    visible: boolean
    x: number
    y: number
    width: number
    height: number
    thumbY: number
    thumbHeight: number
    isDragging: boolean
  }
}
